/*
 * This file or a portion of this file is licensed under the terms of
 * the Globus Toolkit Public License, found in file GTPL, or at
 * http://www.globus.org/toolkit/download/license.html. This notice must
 * appear in redistributions of this file, with or without modification.
 *
 * Redistributions of this Software, with or without modification, must
 * reproduce the GTPL in: (1) the Software, or (2) the Documentation or
 * some other similar material which is provided with the Software (if
 * any).
 *
 * Copyright 1999-2004 University of Chicago and The University of
 * Southern California. All rights reserved.
 */
package org.griphyn.vdl.parser;

import org.griphyn.vdl.classes.*;

/**
 * This interface introduces a callback to be employed whenever
 * a Definition is fully read into memory, and ready to be processed.
 * Any overwrite or dontcare mode is not part of this interface's 
 * contract.
 *
 * @author Jens-S. Vöckler
 * @author Yong Zhao
 * @version $Revision: 50 $
 *
 * @see Definition
 * @see Transformation
 * @see Derivation
 */
public interface FinalizerHandler 
{
  /**
   * This method adds the given top-level VDL element to whatever storage is
   * implemented underneath. Please note that the Defintions class will not
   * be maintained by the parser for memory efficiency reasons!
   *
   * @param d is the VDL that is ready to be stored.
   * @return true, if new version was stored and database modified,
   * false, if the definition was rejected for any reason. 
   */
  public boolean store( VDL d );
}
